package platform.user.api;

import platform.user.model.LoginRequest;
import platform.user.model.LoginResponse;
import platform.user.model.User;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.Collection;

/**
 * 用户 服务接口
 *
 * @author roamer
 * @version V1.0
 * @date 2019-03-10 09:59
 */
@Path("/users")
public interface UserServiceInterface {

    /**
     * 创建用户
     *
     * @param user 用户信息
     *
     * @return {@code User} 用户信息
     */
    @POST
    @Path("/")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    User createUser(User user);

    /**
     * 获取用户列表
     *
     * @return {@code Collection<User>}
     */
    @GET
    @Path("/")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    Collection<User> gerUsers();


    /**
     * 登陆
     *
     * @param loginRequest 登陆请求信息
     *
     * @return {@code LoginResponse}响应
     */
    @POST
    @Path("/login")
    @Consumes({MediaType.APPLICATION_JSON})
    @Produces({MediaType.APPLICATION_JSON})
    LoginResponse login(LoginRequest loginRequest);
}
